const cityData = [
  {
    value: 1,
    label: "中国",
    children: [
      {
        value: 11,
        label: "北京市",
        children: [
          {
            value: 111,
            label: "东城区",
          },
          {
            value: 112,
            label: "西城区",
          },
        ],
      },
      {
        value: 12,
        label: "上海市",
        children: [
          {
            value: 121,
            label: "黄浦区",
          },
          {
            value: 122,
            label: "徐汇区",
          },
        ],
      },
      {
        value: 13,
        label: "广东省",
        children: [
          {
            value: 131,
            label: "广州市",
            children: [
              {
                value: 1311,
                label: "天河区",
              },
              {
                value: 1312,
                label: "越秀区",
              },
            ],
          },
          {
            value: 132,
            label: "深圳市",
            children: [
              {
                value: 1321,
                label: "南山区",
              },
              {
                value: 1322,
                label: "罗湖区",
              },
            ],
          },
        ],
      },
    ],
  },
];

/* *
 请利用递归方法实现一个函数，把父级的value加入到子集的每一项中（parentValue字段），得到以下数据，⚠️注意：不允许使用三层循环，请使用递归方法
 [
    {
        value: 1,
        label: '中国',
        children: [
            {
                parentValue: 1,
                value: 11,
                label: '北京市',
                children: [
                    {
                        parentValue: 11,
                        value: 111,
                        label: '东城区'
                    },
                    {
                        parentValue: 11,
                        value: 112,
                        label: '西城区'
                    }
                ]
            },
            {
                parentValue: 1,
                value: 12,
                label: '上海市',
                children: [
                    {
                        parentValue: 12,
                        value: 121,
                        label: '黄浦区'
                    },
                    {
                        parentValue: 12,
                        value: 122,
                        label: '徐汇区'
                    }
                ]
            },
            {
                parentValue: 1,
                value: 13,
                label: '广东省',
                children: [
                    {
                        parentValue: 13,
                        value: 131,
                        label: '广州市',
                        children: [
                            {
                                parentValue: 131,
                                value: 1311,
                                label: '天河区'
                            },
                            {
                                parentValue: 131,
                                value: 1312,
                                label: '越秀区'
                            }
                        ]
                    },
                    {
                        parentValue: 13,
                        value: 132,
                        label: '深圳市',
                        children: [
                            {
                                parentValue: 132,
                                value: 1321,
                                label: '南山区'
                            },
                            {
                                parentValue: 132,
                                value: 1322,
                                label: '罗湖区'
                            }
                        ]
                    }
                ]
            }
        ]
    }
]
 * */

// 具体实现
const getArea = (data, parentValue) => {
  data.forEach((item) => {
    if (parentValue !== undefined) {
      item.parentValue = parentValue;
    }
    if (item.children) {
      getArea(item.children, item.value);
    }
  });
  return data;
};
const result = getArea([...cityData]);
console.log(result);
